﻿using System.Web;

namespace Sex
{
    public partial class Sex : System.Web.UI.Page
    {
        public class ListRequest : MyList
        {
            public ListRequest(State MyState) : base(MyState, "Request Object")
            {
                HttpContext myHttpContext = HttpContext.Current;
                HttpRequest r = myHttpContext.Request;
                Add("AcceptTypes", GetStringArray(r.AcceptTypes));
                Add("AnonymousID", r.AnonymousID);
                Add("ApplicationPath", r.ApplicationPath);
                Add("AppRelativeCurrentExecutionFilePath", r.AppRelativeCurrentExecutionFilePath);
                Add("Browser", strExtraMenuPoint);
                Add("ClientCertificate", GetNameValueCollection(r.ClientCertificate));
                Add("ContentEncoding", r.ContentEncoding.ToString());
                Add("ContentLength", r.ContentLength.ToString());
                Add("ContentType", r.ContentType.ToString());
                Add("Cookies", strExtraMenuPoint);
                Add("CurrentExecutionFilePath", r.CurrentExecutionFilePath);
                Add("FilePath", r.FilePath);
                Add("Form", GetNameValueCollection(r.Form));
                Add("Headers", GetNameValueCollection(r.Headers));
                try
                {
                    Add("HttpChannelBinding.Size", r.HttpChannelBinding.Size.ToString());
                }
                catch
                {
                    Add("HttpChannelBinding.Size", strNotAvailable);
                }
                Add("HttpMethod", r.HttpMethod);
                Add("IsAuthenticated", r.IsAuthenticated.ToString());
                Add("IsLocal", r.IsLocal.ToString());
                Add("IsSecureConnection", r.IsSecureConnection.ToString());
                Add("LogonUserIdentity.Name", r.LogonUserIdentity.Name);
                Add("Params", GetNameValueCollection(r.Params));
                Add("Path", r.Path);
                Add("PathInfo", r.PathInfo);
                Add("PhysicalApplicationPath", r.PhysicalApplicationPath);
                Add("PhysicalPath", r.PhysicalPath);
                Add("QueryString", GetNameValueCollection(r.QueryString));
                Add("RawUrl", r.RawUrl);
                Add("RequestContext", strComplexType);
                Add("RequestType", r.RequestType);
                Add("ServerVariables", GetNameValueCollection(r.ServerVariables));
                Add("TotalBytes", r.TotalBytes.ToString());
                Add("Url", r.Url.ToString());
                Add("Url.AbsolutePath", r.Url.AbsolutePath);
                Add("Url.AbsoluteUri", r.Url.AbsoluteUri);
                Add("Url.Authority", r.Url.Authority);
                Add("Url.DnsSafeHost", r.Url.DnsSafeHost);
                Add("Url.Fragment", r.Url.Fragment);
                Add("Url.Host", r.Url.Host);
                Add("Url.HostNameType", r.Url.HostNameType.ToString()+" (possible values: Basic,Dns,IPv4,IPv6,Unknown)");
                Add("Url.IsAbsoluteUri", r.Url.IsAbsoluteUri.ToString());
                Add("Url.IsDefaultPort", r.Url.IsDefaultPort.ToString());
                Add("Url.IsFile", r.Url.IsFile.ToString());
                Add("Url.IsLoopback", r.Url.IsLoopback.ToString());
                Add("Url.IsUnc", r.Url.IsUnc.ToString());
                Add("Url.LocalPath", r.Url.LocalPath);
                Add("Url.OriginalString", r.Url.OriginalString);
                Add("Url.PathAndQuery", r.Url.PathAndQuery);
                Add("Url.Port", r.Url.Port.ToString());
                Add("Url.Query", r.Url.Query);
                Add("Url.Scheme", r.Url.Scheme);
                Add("Url.Segments", GetStringArray(r.Url.Segments));
                Add("Url.UserEscaped", r.Url.UserEscaped.ToString());
                Add("Url.UserInfo", r.Url.UserInfo);
                Add("UrlReferrer", r.UrlReferrer == null ? "" : r.UrlReferrer.ToString());
                Add("UserAgent", r.UserAgent);
                Add("UserHostAddress", r.UserHostAddress);
                Add("UserHostName", r.UserHostName);
                Add("UserLanguages", GetStringArray(r.UserLanguages));
            }
        }
    }
}